package 字节;

import java.util.Scanner;

/**
 * @author zhangmin
 * @create 2022-03-13 19:21
 *
 * 字节跳动笔试
 */
public class zijie_0313 {

    /*
    * 1、一个由小写字母构成的字母串，有一个按钮可以生成字母，按下1得到’a'，按下2得到‘b',按下3得到’c'以此类推
    * 小红可以选择字符串的某些字符，通过按按钮生成该字符对应的字母获得得分。每个字符可以获得1分，但每个字符最多选择一次。
    * 小红最多可以按k次按钮，最多可以获得多少分
    * */
    public void test1(){
        Scanner cin=new Scanner(System.in);
        int n = cin.nextInt(); //字符串长度
        int  k= cin.nextInt(); //按钮次数

    }

    /*
    * 2、开始在坐标轴的原点，首先确定n个跳跃目标x1-xn他需要依次跳跃到这n个目标点上，每次从目标点出发都需要先跳1个单位，之后每一步比上一步跳跃远一个单位，可以选择向左或者向右跳跃
    * 到达当前计划前往的目标点后。跳跃距离便会重置，他想知道他依次前往的每个目标点最少需要跳跃几次才能到达
    * leetcode-754
    * 对每一个目标位置，就是从当前坐标开始将1，2，3，...的k次移动添加正号和符号后求和
    * */
    public void test2(int[] target,int n){
/*        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();
        int[] target=new int[n];
        for(int i=0;i<n;i++){
            target[i]=cin.nextInt();
        }*/
        int curindex=0,count=0;
        for(int i=0;i<n;i++){
            //当前目标点
            int curT=target[i];
            int d=Math.abs(curT-curindex);
            if(d==0){
                System.out.println(count);
            }else {
                //需要跳到的长度为d的二倍
                int k=1,sum=1;
                while ((sum%d)!=0){
                    k++;
                    sum+=k;
                }

                count+=k+1;
                System.out.println(count);
            }
            curindex=curT;
        }
    }

        public int reachNumber(int target) {
            target = Math.abs(target);
            int k = 0;
            while (target > 0)
                target -= ++k;
            return target % 2 == 0 ? k : k + 1 + k%2;
        }


    /*
    * 3、n种不同的宝石，价值分别为v1，v2...vn开始每种宝石的数量有c1,c2,...cn颗，有一种魔法，可以把一种宝石变成另一种宝石，但他必须选择连续的种类区间[l,r]
    * 把第l和r的宝石交换第l+1和r-1种宝石交换，依次这样，将整段宝石种类反转（宝石种类变化。不会改变宝石数量），最多施展一次这样的魔法，最后所有宝石的总价值最大为多少
    * */
    public void test3(){
        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();  //宝石种类
        int[] value=new int[n];
        int[] count=new int[n];
        for(int i=0;i<n;i++) {
            value[i] = cin.nextInt();
        }
        for(int i=0;i<n;i++){
            count[i]=cin.nextInt();
        }


    }


    public static void main(String[] args) {
        int[] target={5};
        zijie_0313 obj=new zijie_0313();
        obj.test2(target,1);
    }
}
